1. Field of the Invention
The present invention pertains to computer systems and computer system buses. More particularly, this invention relates to responding to requests placed on a computer system bus.
2. Background
Computer technology is continuously advancing, resulting in modern computer systems which provide ever-increasing performance. One result of this improved performance is an increased use of personal computer systems by individuals in a wide variety of business, academic and personal applications.
Personal computer systems typically have multiple resources coupled together via a system bus. These resources may include, for example, processors, memory devices, and mass storage devices. In order for the computer system to operate properly, these resources must be able to effectively communicate via the bus.
One protocol for communicating between resources used in many personal computer systems is referred to as a "normally ready" bus. On a normally ready bus, a request placed on the bus will be completed within a predefined period of time after issuance of the request. Any response information, including any data, are returned to the requesting agent within that predefined period of time. Thus, if a request which targets a nonexistent or otherwise inaccessible resource is issued on a normally ready bus, the requesting agent knows that if it does not receive the expected response within the predefined period of time, the resource is not usable.
One method used by many computer systems to determine if a device resides at a particular address in memory and/or I/O address space is referred to as "polling". When polling, an agent such as a processor writes a known value to the particular address and then attempts to read from that same address. If the data which is read matches the data which was written, then the agent assumes the device is present and usable. However, if the data read does not match the data written, then the device is either nonexistent or is working improperly. By performing these polling operations for devices which the agent believes exist at particular address locations, the agent can determine whether the devices are working properly and thus are accessible to the agent.
Performing these polling operations in a bus which is not normally ready, however, presents additional problems. That is, if agents coupled to the bus do not presume that a request placed on the bus will be completed within a predetermined time, then the agents may hang indefinitely waiting for a response which will never come (due to the target being nonexistent). Thus, it would be advantageous to provide a mechanism to issue a response which indicates to agents that a device is non-existent in a bus which is not normally ready.
Additionally, one method of increasing computer system performance is to provide a pipelined bus. In a pipelined bus, bus transactions are separated into multiple stages or phases. A transaction is completed when it has gone through all, or in some instances fewer than all, of the stages of the bus. By pipelining the bus, multiple transactions can be in progress on the bus at any given time, with each transaction being in a different stage. Thus, it would be advantageous to provide a computer system which is capable of responding to transactions which target a nonexistent or nonfunctioning device within a pipelined bus environment.
The present invention provides for these and other advantageous results.